package com.sharp.portal.service;

import com.github.pagehelper.PageInfo;
import com.sharp.portal.vo.QueryConditionReq;

import java.util.List;

/**
 * Title: PortalAspectService
 * Description: Copyright: Copyright (c) 2019 Company: BHFAE
 *
 * @author Sharp
 * @date 2021/6/17 18:12
 */
public interface PortalAspectService<ENTITY> {


    /**
     * 查询前
     *
     * @param req 查询条件
     */
    void queryBefore(QueryConditionReq req);

    /**
     * 查询后
     *
     * @param res 查询结果
     * @return 查询结果再处理
     */
    PageInfo queryAfter(PageInfo<ENTITY> res);

    /**
     * 添加前
     *
     * @param entity 添加data
     */
    void addBefore(ENTITY entity);

    /**
     * 添加后
     *
     * @param entity 添加data
     */
    void addAfter(ENTITY entity);

    /**
     * 更新前
     *
     * @param entity 更新data
     */
    void updateBefore(ENTITY entity);

    /**
     * 更新后
     *
     * @param entity 更新data
     */
    void updateAfter(ENTITY entity);

    /**
     * 失效前
     *
     * @param id 失效id
     */
    void disableBefore(Object id);

    /**
     * 失效后
     *
     * @param id 失效id
     */
    void disableAfter(Object id);

    /**
     * 删除前
     *
     * @param id 删除id
     */
    void deleteBefore(Object id);

    /**
     * 删除后
     *
     * @param id 删除id
     */
    void deleteAfter(Object id);

    /**
     * 导出前
     *
     * @param req 查询条件
     */
    void exportBefore(QueryConditionReq req);

    /**
     * 导出后
     *
     * @param data 查询结果
     * @return 查询结果再处理
     */
    List exportAfter(List<ENTITY> data);
}
